package com.carleasoft.mps.cms.business.message.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.carleasoft.mps.cms.business.message.bean.entity.MessageNote;
import com.carleasoft.mps.cms.business.message.bean.po.MessageNotePageQueryPo;
import com.carleasoft.mps.cms.business.message.bean.po.MessagePersonalCenterQueryListPo;
import com.carleasoft.mps.cms.business.message.bean.po.StatisticalAnalysisMessageNotePo;
import com.carleasoft.mps.cms.business.message.bean.vo.MessageNoteDetailVo;
import com.carleasoft.mps.cms.business.message.bean.vo.MessageNoteVo;
import com.carleasoft.mps.cms.business.message.bean.vo.ResponseReceivedVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

/**
 * <p>
 * 留言基础表 Mapper 接口
 * </p>
 *
 * @author fan
 * @since 2023-05-17
 */
@Mapper
public interface MessageNoteMapper extends BaseMapper<MessageNote> {
    /**
     * 留言-分页查询
     */
    Page<MessageNoteVo> pageQuery(Page page,@Param("po") MessageNotePageQueryPo messageNotePageQueryPo);
    /**
     * 留言-分页查询
     */
    Page<MessageNoteVo> pageQuery1(Page page,@Param("po") MessageNotePageQueryPo messageNotePageQueryPo);
    /**
     * 我的信箱-收到的回复
     */
    Page<ResponseReceivedVo> responseReceived(Page page,@Param("userCode") String userCode);
    /**
     * 我能看见的留言编码集合//给留言加权限
     */
    List<String> myCanViewMessageNoteCodes(@Param("userCode") String userCode);
    /**
     * 通过条件筛选各种留言数量
     * type 1 查全部 2-查已处理的
     * messageType （1心理咨询 2 法律援助 3 邮箱）
     * year 筛选年份
     */
    Integer noteNum(@Param("type") Integer type,@Param("messageType")Integer messageType,@Param("year") String year);
    /**
     * 留言待回复
     */
    Page<MessageNote> massageNoteWait(Page page,@Param("userCode")String userCode);
    /**
     * 获取留言详情
     */
    MessageNoteDetailVo selectMessageNoteDetail(@Param("messageCode")String messageCode);
    /**
     * 个人中心-留言
     */
    List<MessageNoteVo> queryList(@Param("po") MessagePersonalCenterQueryListPo messagePersonalCenterQueryListPo);
    /**
     * 统计分析-心理和法律援助
     */
    Integer statisticalAnalysisMessageNote(@Param("type") Integer type,@Param("status") Integer status,@Param("year")String year);
}
